home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 9
/
FM Towns Free Software Collection 9.iso
/
t_os
/
data
/
fapx
/
fapxfree.plp
< prev
next >
Wrap
Text File
|
1994-11-16
|
24KB
|
958 lines
/************************************************************************
* チャット等の自由行動の処理の定義の定義 Ver. 不明 *
* 改造(特攻)野郎 → GFF00430 えんでん(長野(期間限定)) *
* と *
* VFA03257 フェイス(北九州) *
* FAPX自由行動開発倶楽部 *
*************************************************************************/
%retFAPX{
case(CHeck={Yes},{Yes},{LOGforum({freelog},{stop});CHeck:={No}});
footnote({自由行動の終了処理中です});
gotoTOP(1);
display({自由行動を終了しました\n});
Where:={};
};
%SEC {5};
%Wm {
case (CHeck,
{Yes},
{
SNDMSG({kaknin_f.snd});
footnote({自由行動のログはどうします?});
select ({記録を終了しますか?},
Wtime4,,
{ 記録終了 },{LOGforum({freelog},{stop});CHeck:={No}},
{終了しない},
)
},
{No},
{
case (FREC,
{Yes},{LOGforum({freelog},{start});CHeck:={Yes}},
{No},,
,
{
SNDMSG({kaknin_f.snd});
footnote({自由行動のログはどうします?});
select ({記録を開始しますか?},
Wtime4,,
{ 記録開始 },
{LOGforum({freelog},{start});CHeck:={Yes}},
{開始しない},
);
});
});
};
/* 経過時間チェック */
%TIMECHK{
%dt @daylong;
%dt1 @getchar(dt,1,4)|@getchar(dt,6,2)|@getchar(dt,9,2)|
@getchar(dt,16,2)|@getchar(dt,19,2);
case (TIME1<>{}&&dt1>=TIME1,
{Yes},
{
SNDMSG({jikan_f.snd});
display({終了予定時刻を過ぎています\n});
},
{No},
{
case (TIME2<>{}&&dt1>TIME2,
{Yes},
{
SNDMSG({jikan_f.snd});
display({終了予定時刻が近づいています\n});
});
});
};
var TIME1 [12]; /* 終了予定時刻 */
var TIME2 [12]; /* 終了予告時刻 */
var TIME3 [2]; /* 予告時間(分) */
%SetEndTime{
var YYY1 [4];
var M1 [2];
var D1 [2];
var H1 [2];
var m1 [2];
var time1 [12];
var time3 [2];
case (TIME1={},
{Yes},
{
%t @daylong;
%YYY1 @getchar(t,1,4);
%M1 @getchar(t,6,2);
%D1 @getchar(t,9,2);
%H1 @getchar(t,16,2);
%m1 @getchar(t,19,2);
time1:= @YMDtoMIN(YYY1|M1|D1|H1|m1)+FREETIME;
time3:= { 4};
},
{No},
{
YYY1:= @getchar(TIME1,1,4);
M1:= @getchar(TIME1,5,2);
D1:= @getchar(TIME1,7,2);
H1:= @getchar(TIME1,9,2);
m1:= @getchar(TIME1,11,2);
time1:= @YMDtoMIN(YYY1|M1|D1|H1|m1);
time3:= @case (TIME3,
0,{im({ 4})},5,{im({ 1})},
10,{im({ 2})},30,{im({ 3})},
,{im({ 4})});
});
loop ({
%t @daylong;
%YYYY @getchar(t,1,4);
%MM @getchar(t,6,2);
%DD @getchar(t,9,2);
%HH @getchar(t,16,2);
%mm @getchar(t,19,2);
%t1 @MINtoYMD(time1);
%YYY1 @getchar(t1,1,4);
%M1 @getchar(t1,5,2);
%D1 @getchar(t1,7,2);
%H1 @getchar(t1,9,2);
%m1 @getchar(t1,11,2);
%a @plane( {c自由行動の終了予定時刻を指定してください\n}|
{c 現在時刻は }|YYYY|{年 }|MM|{月 }|DD|{日 }|
HH|{時 }|mm|{分 です\n}|
{c\n}|
{c 終了予定時刻 }|YYY1|{年 }|M1|{月 }|D1|{日 }|
H1|{時 }|m1|{分 \n}|
{s /-1時間/ -10分/ -1分}|
{/ +1分/ +10分/+1時間\n}|
{c\n}|
{r 終了予告時刻 / 5分前/10分前/30分前}|
{/しない\n}|
{s / 設 定 / 取 消 / 無変更 \n},
time3);
%sel1 @head(@getline(a,1,1),{\n});
time3:= @head(@getline(a,2,1),{\n});
%ok @head(@getline(a,3,1),{\n});
case (sel1,
{ 1},{time1:=time1-60},
{ 2},{time1:=time1-10},
{ 3},{time1:=time1-1},
{ 4},{time1:=time1+1},
{ 5},{time1:=time1+10},
{ 6},{time1:=time1+60},
);
case (ok,
{ 1},
{
TIME1:=@MINtoYMD(time1);
TIME3:=@case (time3,
{ 1},{im(5)},
{ 2},{im(10)},
{ 3},{im(30)},
,{im(0)}
);
TIME2:=@MINtoYMD(time1-TIME3);
im({No});
},
{ 2},
{TIME1:={};TIME2:={};TIME3:={};im({No})},
{ 3},{im({No})},
,{im({Yes})}
);
});
};
/* 西暦日付時刻(YYYYMMDDHHmm)から1901/01/01 00:00起点通し時間(分)への変換 */
/* 注意! 西暦1901年から2099年までのみ対応 */
%YMDtoMIN{
[yyyymmdd]
%YYYY @getchar(yyyymmdd,1,4);
%MM @getchar(yyyymmdd,5,2);
%DD @getchar(yyyymmdd,7,2);
%HH @getchar(yyyymmdd,9,2);
%mm @getchar(yyyymmdd,11,2);
var DAYS [6];
var MINS [10];
DAYS:=(YYYY-1901)*365+(YYYY-1901)/4;
case ((YYYY-YYYY/4*4)!=0,
{Yes},
{
case (MM,
{01},{DAYS:=DAYS+0},
{02},{DAYS:=DAYS+31},
{03},{DAYS:=DAYS+59},
{04},{DAYS:=DAYS+90},
{05},{DAYS:=DAYS+120},
{06},{DAYS:=DAYS+151},
{07},{DAYS:=DAYS+181},
{08},{DAYS:=DAYS+212},
{09},{DAYS:=DAYS+243},
{10},{DAYS:=DAYS+273},
{11},{DAYS:=DAYS+304},
{12},{DAYS:=DAYS+334}
);
},
{No},
{
case (MM,
{01},{DAYS:=DAYS+0},
{02},{DAYS:=DAYS+31},
{03},{DAYS:=DAYS+60},
{04},{DAYS:=DAYS+91},
{05},{DAYS:=DAYS+121},
{06},{DAYS:=DAYS+152},
{07},{DAYS:=DAYS+182},
{08},{DAYS:=DAYS+213},
{09},{DAYS:=DAYS+244},
{10},{DAYS:=DAYS+274},
{11},{DAYS:=DAYS+305},
{12},{DAYS:=DAYS+335}
);
});
DAYS:=DAYS+DD-1;
MINS:=DAYS*24*60+HH*60+mm;
im(MINS);
};
/* 1901/01/01 00:00起点通し時刻(分)から 西暦日付時刻への変換 */
/* 注意! 西暦1901年から2099年までのみ対応 */
%MINtoYMD{
[MINS]
var MM [2];
var DD [2];
%mm MINS-(MINS/60)*60;
%HOURS (MINS-mm)/60;
%HH HOURS-HOURS/24*24;
%DAYS (HOURS-HH)/24;
%days4 DAYS-DAYS/(365*4+1)*(365*4+1);
%YYYY (DAYS/(365*4+1))*4+1901+days4/365-days4/(365*4);
%days @case (days4>365*3,
{Yes},{im(days4-365*3)},
{No},{im(days4-days4/365*365)}
);
case ((YYYY-YYYY/4*4)!=0,
{Yes},
{
case(days>=334,{Yes},{MM:={12};DD:=days-334+1},
,{case(days>=304,{Yes},{MM:={11};DD:=days-304+1},
,{case(days>=273,{Yes},{MM:={10};DD:=days-273+1},
,{case(days>=243,{Yes},{MM:={09};DD:=days-243+1},
,{case(days>=212,{Yes},{MM:={08};DD:=days-212+1},
,{case(days>=181,{Yes},{MM:={07};DD:=days-181+1},
,{case(days>=151,{Yes},{MM:={06};DD:=days-151+1},
,{case(days>=120,{Yes},{MM:={05};DD:=days-120+1},
,{case(days>=90,{Yes},{MM:={04};DD:=days-90+1},
,{case(days>=59,{Yes},{MM:={03};DD:=days-59+1},
,{case(days>=31,{Yes},{MM:={02};DD:=days-31+1},
,{MM:={01};DD:=days+1}
)})})})})})})})})})})},
{No},
{
case(days>=335,{Yes},{MM:={12};DD:=days-335+1},
,{case(days>=305,{Yes},{MM:={11};DD:=days-305+1},
,{case(days>=274,{Yes},{MM:={10};DD:=days-274+1},
,{case(days>=244,{Yes},{MM:={09};DD:=days-244+1},
,{case(days>=213,{Yes},{MM:={08};DD:=days-213+1},
,{case(days>=182,{Yes},{MM:={07};DD:=days-182+1},
,{case(days>=152,{Yes},{MM:={06};DD:=days-152+1},
,{case(days>=121,{Yes},{MM:={05};DD:=days-121+1},
,{case(days>=91,{Yes},{MM:={04};DD:=days-91+1},
,{case(days>=60,{Yes},{MM:={03};DD:=days-60+1},
,{case(days>=31,{Yes},{MM:={02};DD:=days-31+1},
,{MM:={01};DD:=days+1}
)})})})})})})})})})})}
);
im(@ZERO(YYYY,4)|@ZERO(MM,2)|@ZERO(DD,2)|@ZERO(HH,2)|@ZERO(mm,2));
};
/************************************************************************
* 自由行動メイン *
************************************************************************/
%GOCHAT {
case (AM3={Yes}||AM3={Detail},
{Yes},
{display({夜間自動実行のため、自由行動は省略します\n});Ex:={Y}},
{No},
{
type({SET PAGE ON\n});
WAITABORT(Wtime2);
SetEndTime;
display({自由行動を開始します\n});
CHeck:={No};
Wm;
Where:={};
DLMFLAG:={No};
chat({Yes});
/*****メニュー開始*****/
loop ({
footnote({終了記録MAILPAD }|
{通常▼▼ 他 ▲▲RTC アラーム清書},{b});
waitx(300);
TIMECHK;
case (@xtype,
{-2},{im({Yes})},
{101},
{
display({\n☆オートに復帰しますよ!\n});
footnote({ ○ 取消},{b});
waitx(SEC);
case (@xtype,
{-2},{SNDMSG({kaknin_f.snd});im({Yes})},
{101},{retFAPX;Ex:={Y};im({No})},
{201},{retFAPX;Ex:={Y};im({No})},
,{im({Yes})}
)
},
{201},
{
SNDMSG({kaknin_f.snd});
footnote({終了でオートに復帰});
select ({本当に終了しますか?},
Wtime4,{im({Yes})},
{ 終 了 },{retFAPX;Ex:={Y};im({No})},
{ 取 消 },{im({Yes})}
)
},
{102},{Wm;im({Yes})},
{202},{Wm;im({Yes})},
{103},
{
display({\n☆メールをダウンしますよ!\n});
%Mdow {
retFAPX;
setcdir(CDIR);
case(MLcnt<1,{Yes},{MLcnt:=-1});
#FAPXMAIL.PLP;
Where:={};
};
footnote({ ○ 取消},{b});
waitx(SEC);
case (@xtype,
{-2},{SNDMSG({kaknin_f.snd});im({Yes})},
{101},{Mdow;im({No})},
{201},{Mdow;im({No})},
,{im({Yes})}
)
},
{203},
{
SNDMSG({kaknin_f.snd});
footnote({メールをダウンしに行きます});
select ({メールをダウンしますか?},
Wtime4,{im({Yes})},
{ダウンする},
{
retFAPX;
case(MLcnt<1,{Yes},{MLcnt:=-1});
setcdir(CDIR);
#FAPXMAIL.PLP;
Where:={};
im({No});
},
{ 取 消 },{im({Yes})}
)
},
{104},
{
display({\nPAD処理を行います\n});
footnote({ ○ 取消},{b});
waitx(SEC);
case (@xtype,
{-2},{SNDMSG({kaknin_f.snd});im({Yes})},
{101},{retFAPX;execPAD;im({No})},
{201},{retFAPX;execPAD;im({No})},
,{im({Yes})}
)
},
{204},
{
SNDMSG({kaknin_f.snd});
footnote({PAD処理を行います});
select ({PAD処理を行いますか?},
Wtime4,{im({Yes})},
{ 実 行 },
{retFAPX;execPAD;im({No})},
{ 取 消 },{im({Yes})}
);
},
{106},{FRee1;{im({Yes})}},
{206},{FRee1;{im({Yes})}},
{107},{FRee1;{im({Yes})}},
{207},{FRee1;{im({Yes})}},
{108},{FAPXPLTX;{im({Yes})}},
{208},{FAPXPLTX;{im({Yes})}},
{109},{FRee2;{im({Yes})}},
{209},{FRee2;{im({Yes})}},
{110},{FRee2;{im({Yes})}},
{210},{FRee2;{im({Yes})}},
{111},{SetEndTime;{im({Yes})}},
{211},{SetEndTime;{im({Yes})}},
{112},{FORM;{im({Yes})}},
{212},{FORM;{im({Yes})}},
,{im({Yes})}
);
});
/*****メニュー終わり*****/
});
};
/*******************************************************************
* 自由行動の処理の定義の定義の定義,その1
* ---通常用---
*******************************************************************/
%FRee1 {
loop ({
footnote({▲▲GO MAILHP BILLANN BUL MES LIB RTC }|
{UST2PROF},{b});
waitx(300);
TIMECHK;
case (@xtype,
{-2},{im({Yes})},
{101},{im({No})},
{201},{im({No})},
{102},
{
SNDMSG({nyuryo_f.snd});
%tmp @input({行き先を指定して下さい},,{/go });
case(tmp<>{},{Yes},{type(tmp);type({\n})});
im({Yes});
},
{202},
{
SNDMSG({nyuryo_f.snd});
%tmp @input({行き先を指定して下さい},,{go });
case(tmp<>{},{Yes},{type(tmp);type({\n})});
im({Yes});
},
{103},{type({/go mail\n});im({Yes})},
{203},{type({go mail\n});im({Yes})},
{104},{type({/go hp\n});im({Yes})},
{204},{type({go hp\n});im({Yes})},
{105},{type({/go bill\n});im({Yes})},
{205},{type({go bill\n});im({Yes})},
{106},{type({/ann\n});im({Yes})},
{206},{type({ann\n});im({Yes})},
{107},{type({/bul\n});im({Yes})},
{207},{type({bul\n});im({Yes})},
{108},{type({/mes\n});im({Yes})},
{208},{type({mes\n});im({Yes})},
{109},{type({/lib\n});im({Yes})},
{209},{type({lib\n});im({Yes})},
{110},{type({/rtc\n});im({Yes})},
{210},{type({rtc\n});im({Yes})},
{111},{type({/ust2\n});im({Yes})},
{211},{type({ust2\n});im({Yes})},
{112},
{
SNDMSG({nyuryo_f.snd});
%tmp @input({IDを指定して下さい},,{/prof });
case(tmp<>{},{Yes},{type(tmp);type({\n})});
im({Yes});
},
{212},
{
SNDMSG({nyuryo_f.snd});
%tmp @input({IDを指定して下さい},,{prof });
case(tmp<>{},{Yes},{type(tmp);type({\n})});
im({Yes});
},
,{im({Yes})}
);
});
};
/************************************************************************
* 自由行動の処理の定義の定義の定義,その2 *
* ---RTC用--- *
************************************************************************/
%FRee2 {
var MEMO[1]; /* ハンドルリストのメモ番号 */
var CH[2]; /* 現在いるチャンネル */
var HANDLE2[20];
var HANDLE3[500]; /* 「専念モード」用ハンドルデータ用*/
var foottxt[48]; /* 「専念モード」footnote */
var A[2]; /* ただのカウント用 */
CH:=1;
MEMO:=@mlast+1;
loop ({
footnote({▼▼発言SENDPAGEPROF専念}|
{スラユーエコー 改名アラーム}|{偵察チャネル},{b});
waitx (300,,
{(1,},{CH:={1}},
{(2,},{CH:={2}});
TIMECHK;
case (@xtype,
{-2},{im({Yes})},
{101},{rtcend;im({No})},
{201},{rtcend;im({No})},
{102},{case(@mlast=MEMO,{Yes},{SAY});im({Yes})},
{202},{case(@mlast=MEMO,{Yes},{SAY});im({Yes})},
{103},{case(@mlast=MEMO,{Yes},{SEND});im({Yes})},
{203},{case(@mlast=MEMO,{Yes},{SEND});im({Yes})},
{104},{case(@mlast=MEMO,{Yes},{PAGE});im({Yes})},
{204},{case(@mlast=MEMO,{Yes},{PAGE});im({Yes})},
{105},{case(@mlast=MEMO,{Yes},{PROFLOOK});im({Yes})},
{205},{case(@mlast=MEMO,{Yes},{PROFLOOK});im({Yes})},
{106},{SPEMODE;im({Yes})},
{206},{SPEMODE;im({Yes})},
{108},
{
footnote({ ON OFF取消},{b});waitx(SEC);
case (@xtype,
{-2},{im({Yes})},
{101},{type({/EC ON\n});im({Yes})},
{201},{type({/EC ON\n});im({Yes})},
{102},{type({/EC OFF\n});im({Yes})},
{202},{type({/EC OFF\n});im({Yes})},,
{im({Yes})}
);
},
{208},
{
select ({エコー表示について選択せよ!},
{5},{im({Yes})},
{エコーON },{type({/EC ON\n});im({Yes})},
{エコーOFF},{type({/EC OFF\n});im({Yes})}
);
},
{109},
{
%tmp @input({新しいハンドルネームを入力せよ!},
{u},{/HAndle });
case(tmp<>{},{Yes},{type(tmp|{\n})});
im({Yes});
},
{209},
{
%tmp @input({新しいハンドルネームを入力せよ!},
{c},{/HA });
case(tmp<>{},{Yes},{type(tmp|{\n})});
im({Yes});
},
{107},{U;im({Yes})},
{207},{U;im({Yes})},
{110},{SetEndTime;im({Yes})},
{210},{SetEndTime;im({Yes})},
{111},
{
footnote({CH1 CH2 解除取消},{b});waitx(SEC);
case (@xtype,
{-2},{im({Yes})},
{101},{type({/MO 1\n});im({Yes})},
{201},{type({/MO 1\n});im({Yes})},
{102},{type({/MO 2\n});im({Yes})},
{202},{type({/MO 2\n});im({Yes})},
{103},{type({/UNM\n});im({Yes})},
{203},{type({/UNM\n});im({Yes})},,
{im({Yes})}
);
},
{211},
{
select ({モニタするチャンネルを選択せよ!},
{5},{im({Yes})},
{チャンネル1},{type({/MOnitor 1\n});im({Yes})},
{チャンネル2},{type({/MOnitor 2\n});im({Yes})},
{ モニタ解除 },{type({/UNMonitor\n});im({Yes})}
);
},
{112},
{
footnote({CH1 CH2 取消},{b});waitx(SEC);
case (@xtype,
{-2},{im({Yes})},
{101},{type({/C 1\n});CH:={1};im({Yes})},
{201},{type({/C 1\n});CH:={1};im({Yes})},
{102},{type({/C 2\n});CH:={2};im({Yes})},
{202},{type({/C 2\n});CH:={2};im({Yes})},
{103},{im({Yes})},
{203},{im({Yes})},,
{im({Yes})}
);
},
{212},
{
select ({移動先のチャンネルを選択せよ!},
{5},{im({Yes})},
{チャンネル1},
{type({/C 1\n});CH:={1};im({Yes})},
{チャンネル2},
{type({/C 2\n});CH:={2};im({Yes})}
);
},
MEMO,{DOUBLE;im({Yes})},
,{im({Yes})}
);
});
};
/* ID一覧ダブルクリック時の処理 */
%DOUBLE {
%LineNo @xlinenum;
%MemoLine @nolmemo(MEMO)-1;
%line1 @case (LineNo>MemoLine,
{Yes},
{im(@memo(MEMO,MemoLine,1))},
{No},
{case (LineNo<=0,
{Yes},{im(@memo(MEMO,1,1))},
{No},{im(@memo(MEMO,LineNo,1))}
);
});
%HANDLE @head(@getchar(line1,12),{\n});
SNDMSG({erande_f.snd});
select({処理を選択せよ! 対象 }|HANDLE,
Wtime4,,
{ プロフィールを見る(/PR )},PROFLOOK,
{ 情報を見る (/Who )},WHOLOOK,
{ メッセージを送る (/SEnd)},SEND,
{ メッセージを送る (/Page)},PAGE
);
};
/* プロフィールを見る */
%PROFLOOK{
case(@mcheck=0,{Yes},{mopen(MEMO)});
case (@memo(MEMO)={},
{No},{
%LineNo @xlinenum;
%MemoLine @nolmemo(MEMO)-1;
%line1 @case (LineNo>MemoLine,
{Yes},
{im(@memo(MEMO,MemoLine,1))},
{No},
{case (LineNo<=0,
{Yes},{im(@memo(MEMO,1,1))},
{No},{im(@memo(MEMO,LineNo,1))}
);
});
%PROFID @getchar(line1,12,8);
type({/PR }|PROFID|{\n});});
mclose(1);
};
/* 情報を見る */
%WHOLOOK{
case(@mcheck=0,{Yes},{mopen(MEMO)});
case (@memo(MEMO)={},
{No},{
%LineNo @xlinenum;
%MemoLine @nolmemo(MEMO)-1;
%line1 @case (LineNo>MemoLine,
{Yes},
{im(@memo(MEMO,MemoLine,1))},
{No},
{case (LineNo<=0,
{Yes},{im(@memo(MEMO,1,1))},
{No},{im(@memo(MEMO,LineNo,1))}
);
});
%WHOJOB @tail(@getchar(line1,1,4),{ });
type({/Who }|WHOJOB|{\n});});
mclose(1);
};
/* /SEndする */
%SEND {
case(@mcheck=0,{Yes},{mopen(MEMO)});
case (@memo(MEMO)={},
{No},{
%LineNo @xlinenum;
%MemoLine @nolmemo(MEMO)-1;
%line1 @case (LineNo>MemoLine,
{Yes},
{im(@memo(MEMO,MemoLine,1))},
{No},
{case (LineNo<=0,
{Yes},{im(@memo(MEMO,1,1))},
{No},{im(@memo(MEMO,LineNo,1))}
);
});
%SENDID @getchar(line1,12,8);
SNDMSG({nyuryo_f.snd});
%sendmes @input({送信するメッセージを入力せよ!},{c});
type({/SEnd }|SENDID|{ }|sendmes|{\n});});
mclose(1);
};
/* Pするォィォィ */
%PAGE {
case(@mcheck=0,{Yes},{mopen(MEMO)});
case (@memo(MEMO)={},
{No},{
%LineNo @xlinenum;
%MemoLine @nolmemo(MEMO)-1;
%line1 @case (LineNo>MemoLine,
{Yes},
{im(@memo(MEMO,MemoLine,1))},
{No},
{case (LineNo<=0,
{Yes},{im(@memo(MEMO,1,1))},
{No},{im(@memo(MEMO,LineNo,1))}
);
});
%PJOB @tail(@getchar(line1,1,4),{ });
SNDMSG({nyuryo_f.snd});
%sendmes @input({送信するメッセージを入力せよ!},{c});
type({/Page }|PJOB|{ }|sendmes|{\n})});
mclose(1);
};
/* 発言する */
%SAY {
case(@mcheck=0, {Yes},{mopen(MEMO)},
{No},{
case (@memo(MEMO)={},
{No},{
%LineNo @xlinenum;
%MemoLine @nolmemo(MEMO)-1;
%line1 @case (LineNo>MemoLine,
{Yes},
{im(@memo(MEMO,MemoLine,1))},
{No},
{case (LineNo<=0,
{Yes},{im(@memo(MEMO,1,1))},
{No},{im(@memo(MEMO,LineNo,1))}
);
});
HANDLE2:= @head(@getchar(line1,21),{\n});
});});
SNDMSG({nyuryo_f.snd});
%sendmes @input({発言},{u});
type(sendmes|{>}|HANDLE2|{さん\n});
mclose(1);
};
/* ハンドルリスト取得 */
%U {
type({/U }|CH|{\n});
delfile(TEMP2|{rtc.men});
wait (Wtime4,,
{HANDLE \n},
{
loop ({
wait (3,{im({No})},
{\n},
{
case (@nochar(@tail(@body(@laststr(50),{\n}),
{ }|CH|{ },{ }))={8},
{Yes},
{
write(TEMP2|{rtc.men},
@body(@laststr(50),{\n}));
im({Yes});
},
{No},
{
case (@getchar(@body(@laststr(50),
{\n}),1,3)={(}|CH|{,},
{Yes},{im({No})},
,{im({Yes})}
);
});
},
{\n(1,},
{im({No})},
{\n(2,},
{im({No})}
);
});
case(@mcheck={0},{No},{mclose(1)});
madd(MEMO,{\n});
mclear(MEMO);
case(@filechk(TEMP2|{rtc.men}),
{Yes},{mread(TEMP2|{rtc.men},MEMO)});
mopen(MEMO,350,21,639,201,{r});
mclose(1);
},
{◆該当するユーザーはいません◆\n},
);
};
/* 専念モード(なんじゃそりゃ) */
%SPEMODE{
var B[1]; /* footnoteのページ */
var PF[2]; /* 押したPFキーの番号 */
B:=1;
U;
SPEMODE2;
SPEMODE3;
chat({No});
loop ({
SNDMSG({nyuryo_f.snd});
footnote({送信する文章を入力せよ!(その後宛先指定)});
%mes @input({発言},{u});
loop ({
footnote(foottxt,{b});
waitx();
case (@xtype,
MEMO,{case(@mlast=MEMO,{Yes},{SAY});im({No})},
{-2},{im({Yes})},
{101},{PF:={1};SENDMES;im({No})},
{201},{PF:={1};SENDMES;im({No})},
{102},{PF:={2};SENDMES;im({No})},
{202},{PF:={2};SENDMES;im({No})},
{103},{PF:={3};SENDMES;im({No})},
{203},{PF:={3};SENDMES;im({No})},
{104},{PF:={4};SENDMES;im({No})},
{204},{PF:={4};SENDMES;im({No})},
{105},{PF:={5};SENDMES;im({No})},
{205},{PF:={5};SENDMES;im({No})},
{106},{PF:={6};SENDMES;im({No})},
{206},{PF:={6};SENDMES;im({No})},
{107},{PF:={7};SENDMES;im({No})},
{207},{PF:={7};SENDMES;im({No})},
{108},{PF:={8};SENDMES;im({No})},
{208},{PF:={8};SENDMES;im({No})},
{109},{PF:={13};im({No})},
{209},{PF:={13};im({No})},
{110},{U;SPEMODE2;B:=1;SPEMODE3;im({Yes})},
{210},{U;SPEMODE2;B:=1;SPEMODE3;im({Yes})},
{111},{case(B=1,
{Yes},{B:=4;SPEMODE3;im({Yes})},
{No},{B:=B-1;SPEMODE3;im({Yes})})},
{211},{case(B=1,
{Yes},{B:=4;SPEMODE3;im({Yes})},
{No},{B:=B-1;SPEMODE3;im({Yes})})},
{112},{case(B=4,
{Yes},{B:=1;SPEMODE3;im({Yes})},
{No},{B:=B+1;SPEMODE3;im({Yes})})},
{212},{case(B=4,
{Yes},{B:=1;SPEMODE3;im({Yes})},
{No},{B:=B+1;SPEMODE3;im({Yes})})},
,{im({Yes})}
);
});
case(PF,13,{im({No})},,{im({Yes})});
});
chat({Yes});
};
/* 専念モード宛先付発言送信 */
%SENDMES{
%C @case(B, 1,{im(PF)}, 2,{im({6}+PF)},
3,{im({12}+PF)},4,{im({18}+PF)});
%HANDLE @case (PF,
{7},{im({ALL})},
{8},{im({})},
,{im(@head(@getline(HANDLE3,C,1),{\n}))}
);
case (HANDLE,
{},{type(mes|{\n})},
{ALL},{type(mes|{>ALL\n})},
,{type(mes|{>}|HANDLE|{さん\n})}
);
};
/* 専念モード用ハンドルデータ作成(ハンドル\n・・・) */
%SPEMODE2{
case (@filechk(TEMP2|{rtc.men}),
{Yes},
{
%LIST @read(TEMP2|{rtc.men});
A:=1;
HANDLE3:={};
loop ({
%HANDLE @head(@getchar(@getline(LIST,A,1),21),{\n});
case (HANDLE={},
{No}, {HANDLE3:=HANDLE3|HANDLE|{\n};
A:=A+1;
im({Yes})},
{Yes}, {im({No})});
});
});
};
/* 専念モード用ハンドルデータを元にしてfootnoteのボタンを作る*/
%SPEMODE3{
%C @case(B,1,{im({1})},2,{im({7})},3,{im({13})},4,{im({19})});
%HANDLE @getline(HANDLE3,C);
var handle [4];
foottxt:={};
%foottxt2 {----------------------------------------};
A:=1;
loop ({
handle:=@getchar(@head(@getline(HANDLE,A,1),{\n}),1,4);
case (handle={},
{No}, {
case (@nochar(handle),
1,{handle:=handle|{ }},
2,{handle:=handle|{ }},
3,{handle:=handle|{ }}
);
foottxt:=foottxt|handle;
case(A,6,{im({No})},,{A:=A+1;im({Yes})})
},
{Yes}, {A:=A-1;im({No})});
});
case (A=6,{No},{foottxt:=foottxt|@getchar(foottxt2,1,(6-A)*4)});
foottxt:=foottxt|{ALL NON 戻るスラユー前項次項};
};
/* RTCモード終了処理 */
%rtcend {
loop ({
case(@mcheck>=MEMO,{Yes},{mclose(3)});
im(@mcheck>=MEMO);
});
CloseAllMemo;
loop ({
case (@mlast>=MEMO,
{Yes},
{
case(@mcheck!=@mlast,{Yes},{mopen(@mlast)});
mclose(3);
im({Yes});
},
{No},
{im({No})}
);
});
};
/* ファイル清書 */
%FORM {
%memono @mcheck;
case (memono!=0,
{Yes},
{
footnote({メモ}|memono|{を清書します});
mclose(1);
delfile(TEMP2|{fapx$$$_.$$$});
delfile(TEMP2|{fapx$$$_});
mwrite(TEMP2|{fapx$$$_.$$$},memono);
%cdir @getcdir;
setcdir(CDIR);
dispoff(!DEBUG);
command({txf -i }|TEMP2|{fapx$$$_.$$$ -o }|TEMP2|{fapx$$$_});
setcdir(cdir);
dispoff({No});
case (@filechk(TEMP2|{fapx$$$_}),
{Yes},
{
mclear(memono);
mread(TEMP2|{fapx$$$_},memono);
mopen(memono);
},
{No},
{
display({清書機能には TXF.EXE がパスの通った}|
{ディレクトリに必要です\n});
wait(2);
mopen(memono);
});
delfile(TEMP2|{fapx$$$_.$$$});
delfile(TEMP2|{fapx$$$_});
});
};
/************************************************************************
* 自由行動処理メイン *
************************************************************************/
var CHeck [3]; /* ログ記録中フラグ */
var Ex [1]; /* 自由行動終了要求フラグ */
loop({ case (Ex<>{Y},{Yes},{GOCHAT;im({Yes})},{No},{im({No})})});